package com.demo.core.dao;

import java.io.InputStream;
import java.util.Map;


import com.demo.core.dao.base.BaseCoreDao;
import com.demo.core.model.File;

/**
 * 文件数据访问层接口
 * 
 * @author ryuu.kk
 */
public interface FileDao extends BaseCoreDao<File, Long> {
	/**
	 * 更新状态信息
	 * @param file 更新的模型对象
	 * @param fileStatus 角色状态信息
	 * @return 成功操作数 
	 */
	int updateStatus(File file, Map<String, Object> fileStatus);
	/**
	 * 以二进制数组形式取得文件内容
	 * 小文件采用该方式
	 * @param fileId 文件ID
	 * @return 二进制数组
	 */
	byte[] getContent(Long fileId);
	/**
	 * 以数据流形式取得文件内容
	 * 大文件采用该方式，将不关闭数据库连接
	 * @return 返回文件数据流
	 */
	InputStream getFileInputStream(Long fileId);
}
